package cn.tedu.boqi.shop.order.secrity;

import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;

/**
 * 自定义登录
 * 如果要实现自定义登录
 * 第一类必须继承UserDetailsService
 * 第二实现类必须是个组件
 */
@Service
public class UserDetailsServiceImpl implements UserDetailsService {

    /**
     * 框架传过来用户名
     * 要利用用户名查询出
     * 用户信息封装到userDetails
     * 框架自动调用此方法得到你封装好的对象
     * 用封装好的对象来去判断你的认证信息
     * 并返回认证结果
     * @param s 用户提交过来的用户名
     * @return
     * @throws UsernameNotFoundException
     */
    @Override
    public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException {
        UserDetails root = User.builder()
                .username("root")//设置用户名
                .password("1234")
                .disabled(false)
                .accountLocked(false)
                .credentialsExpired(false)
                .authorities("")
                .accountExpired(false)
                .build();
        return root;
    }
}
